package org.dromara.common.wukong.service;

import org.dromara.common.wukong.dto.*;

import java.io.IOException;
import java.util.List;

/**
 * 用户业务
 * @Author: Stars
 * @Date: 2025/3/10 21:03
 */
public interface UserService {

    /**
     * 注册或登录，将用户信息注册到 WuKongIM，如果存在则更新
     */
    void registerOrLogin(UserTokenDTO userToken) throws IOException;

    /**
     * 查询一批用户的在线状态
     *
     * @return 返回在线的用户 uid 集合
     */
    List<String> queryUserOnlineStatus(UserOnlineStatusQueryDTO userOnlineStatusQuery) throws IOException;

    /**
     * 添加系统账号
     */
    void addSystemAccounts(UserSystemUIdsAddDTO userSystemUIdsAdd) throws IOException;

    /**
     * 移除系统账号
     */
    void removeSystemAccounts(UserSystemUIdsRemoveDTO userSystemUIdsRemove) throws IOException;

    /**
     * 踢出用户的设备登录
     */
    void kickUserDevice(UserDeviceQuitDTO userDeviceQuit) throws IOException;
}
